技術問答
技術文章
iT 徵才
Tag
聊天室
2024 鐵人賽
登入/註冊
問答
文章
Tag
邦友
鐵人賽
搜尋
2023 iThome 鐵人賽
DAY
15
0
Software Development
從實戰中學習:Take Home Assignment review & refactor
系列 第
15
篇
[Day 15] 作業三:平台產品銷售收費機制的收銀系統 -專案review
15th鐵人賽
take home assignment
golang
Moscle.dev
2023-09-29 19:15:04
221 瀏覽
分享至
平台產品銷售收費機制的收銀系統 -專案review
專案Repo
Readme review
首先來分析作業的
Readme
,
標題與描述:
"BitGin Assignment"這個標題雖然直接,但可以更符合作業內容的標題。
在"敘述"部分,可以加上一個簡短的一句話摘要,描述這是什麼,例如:"這是一個用Golang實作的平台收銀系統,支援多種收費模式。"
使用方式:
使用的變數命名可以讓用戶更容易理解,例如goodPrice可以更名為productPrice。
可以加入註解以幫助使用者理解每一步的用途。例如,在system := &cashier.ChargingSystem{...}這行後面,可以加入:// 初始化收銀系統。
額外建議:
安裝指南:
可以提供從安裝到執行程式的步驟
測試:
有單元測試,應該提供如何執行這些測試。
錯誤處理和日誌:
如果程式碼中包含錯誤處理或日誌,可以在README中提供一些範例或說明。
格式和結構:
在段落之間加入一些空行,可以使內容看起來更加清楚。
考慮使用列表 (bulleted 或 numbered list) 來組織某些信息,例如主要收費模式。
目錄結構 review
分層結構:
已經適當地將核心業務邏輯(cashier)和指令應用程式(cmd)區分開來,這是常見的Go專案結構。
cashier package:
如果每種收費模式的邏輯都較為複雜,考慮將每種模式分成其自己的檔案,例如normal.go, vip.go, points.go等。
cashier_test.go應該包含了各種情境的單元測試。考慮增加邊際情況的測試和當平台舉行優惠活動時的測試。
cmd package:
main.go是一個簡單的命令行界面,主要的邏輯在cashier package中。
可以考慮加入指令參數或配置選項來使程式更具彈性。
README.md:
確保提供清晰的說明、使用方式、安裝指南等。
.gitignore:
確保.gitignore包含了Go常見的忽略項目,例如*.exe, *.out, /vendor/, *.log, .DS_Store等。
其他:
若有多種收費策略,可能會需要一個策略模式或其他適合的設計模式。檢查cashier.go是否已經考慮到這一點。
若專案可能會進行擴充,考慮使用interface進行解耦,以確保後續增加新的收費模式時不會影響既有的程式。
留言
追蹤
檢舉
上一篇
[Day 14] 作業三:平台產品銷售收費機制的收銀系統 - 需求檢視
下一篇
[Day 16] 作業三:平台產品銷售收費機制的收銀系統 - Code review
系列文
從實戰中學習:Take Home Assignment review & refactor
共
30
篇
目錄
RSS系列文
訂閱系列文
10
人訂閱
26
[Day 26] Simple Auth App:專案始動
27
[Day 27] Simple Auth App:ORM & DB setting
28
[Day 28] Simple Auth App:註冊、登入實作
29
[Day 29] Simple Auth App : 修復TypeORM 問題與DataSource
30
[Day 30] Simple Auth App : 來做個收尾
完整目錄
直播研討會
{{ item.subject }}
{{ item.channelVendor }}
{{ item.webinarstarted }}
|
{{ formatDate(item.duration) }}
直播中
立即報名
尚未有邦友留言
立即登入留言
iThome鐵人賽
參賽組數
1064
組
團體組數
40
組
累計文章數
22210
篇
完賽人數
600
人
看影片追技術
看更多
{{ item.subject }}
{{ item.channelVendor }}
|
{{ formatDate(item.duration) }}
直播中
熱門tag
看更多
15th鐵人賽
16th鐵人賽
13th鐵人賽
14th鐵人賽
12th鐵人賽
11th鐵人賽
鐵人賽
2019鐵人賽
javascript
2018鐵人賽
python
2017鐵人賽
windows
php
c#
windows server
linux
css
react
vue.js
熱門問題
mail server 主機推薦
Outlook 2016 收不到外來信 已解決
windows11的複製功能出現問題
有關Chrome瀏覽器擴充功能,選定特別類型檔案封鎖上傳,並且三秒後關掉網頁
Chrome瀏覽器限制上傳檔案類型
SQL 如何將同欄位數據依照條件拆分成不同欄的資料
mongodb atlas 連線速度變慢或斷線
CTF GAME
同網段下無法連線到印表機
請問如何 移除 KB5051989 更新?造成一些bug
熱門回答
mail server 主機推薦
SQL 如何將同欄位數據依照條件拆分成不同欄的資料
windows11的複製功能出現問題
有關Chrome瀏覽器擴充功能,選定特別類型檔案封鎖上傳,並且三秒後關掉網頁
Outlook 2016 收不到外來信 已解決
熱門文章
「記憶體與基本儲存電路:Latch & Flip Flop」
從零開始學習Java筆記(基本語法)
調變與解調的基本概念(發射端 & 接收端)
請教台語語音模型 (STS, STT)
有關Chrome瀏覽器擴充功能,選定特別類型檔案封鎖上傳
IT邦幫忙
×
標記使用者
輸入對方的帳號或暱稱
Loading
找不到結果。
標記
{{ result.label }}
{{ result.account }}